﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
using DAO;
using DTO;
namespace BUS
{
    public class HoiVienBUS
    {
        public DataTable layThongTinHoiVien(string maHoiVien, string maVe)
        {
            HoiVienDAO dao = new HoiVienDAO();
            return dao.layThongTinHoiVien(maHoiVien, maVe);
        }
        public DataTable layThongTinHoiVien(string key)
        {
            HoiVienDAO dao = new HoiVienDAO();
            return dao.layThongTinHoiVien(key);
        }
        public void CapNhatSoDam(string maVe, string maHoiVien)
        {
            float heso = 0;
            float sodam = 0;
            DataTable dt = new DataTable();
            HoiVienDAO dao = new HoiVienDAO();
            dt = dao.laySoDam_HeSo(maVe);
            if (dt.Rows.Count > 0)
            {
                heso = float.Parse(dt.Rows[0]["heSoCongDam"].ToString());
                foreach (DataRow dr in dt.Rows)
                {
                    sodam += float.Parse(dr["soDam"].ToString());
                }
            }
            xuLyCapNhatSoDam(heso, sodam, maHoiVien,maVe);
        }
        public void xuLyCapNhatSoDam(float heso, float sodam, string maHoiVien,string maVe)
        {
            HoiVienDAO dao = new HoiVienDAO();
            dao.capNhatSoDam(heso, sodam, maHoiVien,maVe);
        }
        public bool kiemTraVe(string maVe)
        {
            HoiVienDAO dao = new HoiVienDAO();
            DataTable dt = new DataTable();
            dt = dao.kiemTraVe(maVe);
            if (dt.Rows.Count < 0 || dt.Rows.Count > 1)
                return false;
            else
            {
                if (DateTime.Parse(dt.Rows[0]["ngayDi"].ToString()) > DateTime.Now || Boolean.Parse(dt.Rows[0]["capNhatDam"].ToString()) == true)
                    return false;
                
            }
            return true;
        }
        public bool kiemTraHoiVien(string maHoiVien)
        {
            HoiVienDAO dao = new HoiVienDAO();
            return dao.kiemTraHoiVien(maHoiVien);
        }
        public int xoaHoiVien(string maHoiVien)
        {
            HoiVienDAO dao = new HoiVienDAO();
            return dao.xoaHoiVien(maHoiVien);
        }
        public int capNhapHoiVien(HoiVienDTO dto)
        {
            HoiVienDAO dao = new HoiVienDAO();
            return dao.capNhapHoiVien(dto);
        }
        public bool kiemTraTenDangNhap(string tenDangNhap)
        {
            HoiVienDAO dao = new HoiVienDAO();
            return dao.kiemTraTenDangNhap(tenDangNhap);
        }
        public int themHoiVien(HoiVienDTO dto)
        {

            HoiVienDAO dao = new HoiVienDAO();
            int soLuong = dao.demSoLuongHoiVien();
            string ID = "HV";
            while ((ID.Length + (soLuong + 1).ToString().Length) < 5)
            {
                ID += "0";
            }
            ID += (soLuong + 1).ToString();
            dto.ID_hoiVien1 = ID;
            return dao.themHoiVien(dto);
        }
    }
}
